package com.example.backend.security;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 权限控制注解
 * 用于标记需要特定权限的API方法
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequirePermission {
    
    /**
     * 需要的权限列表
     */
    String[] value() default {};
    
    /**
     * 需要的角色列表
     */
    String[] roles() default {};
    
    /**
     * 权限检查模式
     * ALL: 需要拥有所有权限
     * ANY: 需要拥有任意一个权限
     */
    Mode mode() default Mode.ANY;
    
    enum Mode {
        ALL, ANY
    }
}
